<?php

require_once('./phpQuery.php');

/* ----- HTML 标签 路径属性 批量加前缀 ----- */
// （传入 Callback 时，可用作 DOM 遍历操作）
function Path_Trans(phpQueryObject $_DOM, $_Selector, array $_Path_Attr, callable $_Callback = NULL) {
    $_DOM->find($_Selector)->each(function () use ($_Path_Attr, $_Callback) {
        $_This = pq( func_get_arg(0) );
        if (! $_Callback)
            $_This->attr($_Path_Attr[0], join('/', array(
                '.', $_Path_Attr[1], $_This->attr($_Path_Attr[0])
            )));
        else $_Callback($_This);
    });
}
/* ----- EasyImport.js v0.7.x 支持 ----- */
function EasyImport($_DOM, array $_Args = null) {
    $_Script = $_DOM->find('script:eq(1)');
    if (! $_Script->length)  return NULL;

    if (! isset($_Args)) {
        $_DOM_JS = array();
        preg_match("/
                ImportJS\([^\[]*             #  JS 文件列表开头
                (\[.+\])                     #  JS 文件列表 - $1
                (
                    \s*,\s*function[^\{]+    #  JS 文件回调 - $3
                    \{(.+)\}
                )?
                \s*\)                        #  JS 文件列表结尾
            /xs", $_Script->text(), $_DOM_JS);
        return array(
            json_decode(preg_replace("/'/", '"', $_DOM_JS[1]), true),
            (count($_DOM_JS) == 4) ? $_DOM_JS[3] : ''
        );
    } else $_Script->text(
        preg_replace(
            "/
                (ImportJS\([^\[]*)             #  JS 文件列表开头 - $1
                \[.+\]                         #  JS 文件列表
                (
                    \s*,\s*function[^\{]+      #  JS 文件回调
                    \{.+\}
                )?
                \s*\)                          #  JS 文件列表结尾
            /xs",
            join("\n", array(
                '$1', $_Args[0], ', function () {', $_Args[1], '})'
            )),
            $_Script->text()
        )
    );
}
